﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling;
using Chilis.Franquicias.EnEntidad;
using Chilis.Franquicias.DaDatos.Helper;

namespace Chilis.Franquicias.DaDatos
{
    public class ReferenciaLaboralDaDatos
    {
        private Database oDatabase = EnterpriseLibraryContainer.Current.GetInstance<Database>(Conexion.cnsSql);

        public int CrearReferenciaBancaria(FQ_ReferenciaLaboral oFQ_ReferenciaLaboral)
        {
            int resultado = 0;
            using (DbCommand oDbCommand = oDatabase.GetStoredProcCommand(Procedimientos.USP_INS_FQ_REFERENCIA_LABORAL))
            {
                oDatabase.AddInParameter(oDbCommand, "@nombreEmpresa", DbType.String, oFQ_ReferenciaLaboral.NombreEmpresa);
                oDatabase.AddInParameter(oDbCommand, "@cargo", DbType.String, oFQ_ReferenciaLaboral.Cargo);
                oDatabase.AddInParameter(oDbCommand, "@inicioTiempoServicio", DbType.DateTime, oFQ_ReferenciaLaboral.InicioTiempoServicio);
                oDatabase.AddInParameter(oDbCommand, "@finTiempoServicio", DbType.DateTime, oFQ_ReferenciaLaboral.FinTiempoServicio);
                oDatabase.AddInParameter(oDbCommand, "@sueldo", DbType.Decimal, oFQ_ReferenciaLaboral.Sueldo);
                oDatabase.AddInParameter(oDbCommand, "@direccion", DbType.String, oFQ_ReferenciaLaboral.Direccion);
                oDatabase.AddInParameter(oDbCommand, "@telefono", DbType.String, oFQ_ReferenciaLaboral.Telefono);
                oDatabase.AddInParameter(oDbCommand, "@correoElectronico", DbType.String, oFQ_ReferenciaLaboral.correoElectronico);
                oDatabase.AddOutParameter(oDbCommand, "@FQ_ReferenciaLaboral_ID", DbType.Int32, 4);
                oDatabase.ExecuteNonQuery(oDbCommand);
                resultado = (int)oDatabase.GetParameterValue(oDbCommand, "@FQ_ReferenciaLaboral_ID");
            }
            return resultado;
        }

        public int ActualizarReferenciaLaboral(FQ_ReferenciaLaboral oFQ_ReferenciaLaboral)
        {
            int resultado = oDatabase.ExecuteNonQuery(Procedimientos.USP_UPD_FQ_REFERENCIA_LABORAL,
                oFQ_ReferenciaLaboral.FQ_ReferenciaLaboral_ID,
                oFQ_ReferenciaLaboral.NombreEmpresa,
                oFQ_ReferenciaLaboral.Cargo,
                oFQ_ReferenciaLaboral.InicioTiempoServicio,
                oFQ_ReferenciaLaboral.FinTiempoServicio,
                oFQ_ReferenciaLaboral.Sueldo,
                oFQ_ReferenciaLaboral.Direccion,
                oFQ_ReferenciaLaboral.Telefono,
                oFQ_ReferenciaLaboral.correoElectronico
            );
            return resultado;
        }


    }
}
